foxMod v0.5
A Mutator and INI modification project for proper splitscreen support, improved gamepad support, Hor+ FOV scaling, and improved AI
By foxUnit01 (foxBox)

------
Features
------
General Additions:
-- Hor+ FOV support (automatically scales FOV based off aspect ratio and "Desired FOV" setting)
-- Campaign mutator support test (see campaign mutator section for use)
-- Additional bindable controls:
	* Fine Aiming
	* Drop Flag / Orb
	* Toggle Impact Hammer
	* Toggle Crouch / Dodge (Gamepad)
	* Weapon Picker (Gamepad)
	* Show Base Path
	* Network Statistics
	* Screenshot

Splitscreen Support:
-- Allow local players to drop-in and drop-out mid-game via "Splitscreen Players" slider option (dynamically select number of splitscreen players from 0 to 3)
-- Local profile system for splitscreen players to automatically save their settings
-- Shared settings such as A/V and Network settings can only be set by first player
-- Per-player FOV setting
-- When voting, splitscreen players will automatically mirror the first player's votes
-- Automatic XBL guest-style player renaming ("fox", "fox(2)", "fox(3)" instead of "Player258")
-- Automatic adjustment of audio when splitscreen is active (see known bugs - previously, each viewport played volume at 100%, becoming astronomically loud when 4 players were active)

Enhanced Gamepad Support:
-- Tighter looking and aiming controls, with adjustable quick-turn sensitivity
-- Optional "Fine Aiming" keybind to shrink the crosshair and set finer aim sensitivity to allow for easier long-range shots (not bound by default)
-- Subtle auto-aim and control tweaks for inputs received from a gamepad - gamepads can be used in tandem with a keyboard/mouse (features automatically toggle appropriately)
-- Working look-to-steer controls and associated "Vehicle Controls" option
-- Revamped default control setup (see below)
-- Analog stick quick-configuration (southpaw, legacy, etc.)
-- Fully remappable gamepad controls (some were mysteriously missing)

AI Improvements:
-- Anti-stuck measures for AI, fixing issues such as bots getting stuck in DM-Turbine
-- Bots use tow cables more often
-- Better follow behavior - bots utilize Link Gun properly when following and break off for combat when appropriate (within range and LOS to leader)
-- Initial orders for bots are now randomly assigned; influenced by other bots' orders
-- Bots now allowed to use hunting and "devious" behavior in team games and when large numbers of bots are present (more CPU intensive, but shouldn't be a problem)
-- Bots now use larger squads for better coordination
-- Bots now use any vehicle of opportunity, not just squad vehicles
-- When near a flag carrier and in a fast vehicle (Scorpion, Manta, etc.), bots will position themselves to tow the flag carrier (basic behavior, but it helps)
-- Bots try harder to get a vehicle unstuck before simply abandoning it
-- Bots with no passengers in an air vehicle will attempt to fetch passengers when not in combat (optimal Cicada usage for starters)
-- Bots now attempt to get out and heal vehicles when not busy
-- Bots now prefer non-vehicle paths when on foot (helps them sneak around vehicles)

Source for the mutators comes pre-extracted in the src folder so you can laugh at my silly code.

------
Installation
------
Extract the archive to "Documents\My Games\Unreal Tournament 3\UTGame". There should be no file overwrites if you've never installed the mod before. DO NOT place any files in your UT3 install folder.

To use the INI tweaks, navigate to the Config folder and delete UTGame.ini and UTInput.ini. When you next launch UT3, new files will be generated from the mod's DefaultGame.ini and DefaultInput.ini with the necessary tweaks.
(Note: This will not reset your profile settings! These modified INIs are also perfectly compatible with normal games not running this mutator)

Finally, to fix a few issues with the new controls not being saved, navigate to the Config folder and open up UTEngine.ini. Find the following line:

	ProfileSettingsClassName=UTGame.UTProfileSettings

Comment this out and replace it with the following:

	;ProfileSettingsClassName=UTGame.UTProfileSettings
	ProfileSettingsClassName=UTMutator_foxSplitScreen.foxProfileSettings

Additionally, to fix audio issues, make the following change in a similar manner to the above:

	;GameViewportClientClassName=UTGame.UTGameViewportClient
	GameViewportClientClassName=UTMutator_foxSplitScreen.foxGameViewportClient

------
Uninstallation
------
Simply delete all files that were extracted from the archive. Additionally, reverse your changes made to UTEngine.ini, and delete your UTGame.ini and UTInput.ini files (to generate new files from vanilla UT3's DefaultGame.ini and DefaultInput.ini).

------
Usage
------
You will need an XBox 360 Controller set to Player 2 or higher. If you only have one XBox 360 Controller (or have no controller and need to emulate it), you may be able to set it to Player 2 or higher using xbox360cemu - http://code.google.com/p/x360ce/

You should notice several new settings in the options menu, particularly under the Input tab. Play around with these as you wish - it will not create any issues should you decide to uninstall the mod later.
If you would like to utilize the new default controls (and receive default keybindings for the new actions), simply click "Restore Defaults" on the Keys page and click Accept (this only works in the main menu, for some reason). When viewing the Keys page again, the new bindings should display.

To start a splitscreen game, navigate to the "Splitscreen Players" slider under the Player tab, which will automatically set the number of splitscreen players for Instant Action and Multiplayer games (for servers running this mutator, though remote functionality is untested).

Splitscreen players should be able to use the in-game menu like normal. If a splitscreen player chooses "disconnect" from the menu, it will drop only that splitscreen player from the game (unless it's the first player, which will disconnect the client as normal).

Splitscreen players' settings will be saved in Config\UTfoxLocalProfile.ini - if you would like to reset their settings to default, simply delete this file.

I have not tested this mutator in network games with remote clients. It "should" work fine in servers running this mutator, however I wouldn't be surprised if there are things that don't replicate properly, as I haven't bothered to try it myself. I assume no risks involved in testing this functionality. :P

Also, splitscreen players will be unable to receive keyboard bindings, in an effort to free the keybindings screen of clutter for gamepads (which is the only input device a splitscreen player can normally use). This does not ever affect the first player, regardless of his/her input. If you would like to override this, set bAllowSplitscreenPlayerKeyboardBindings=True in UTGame.ini

By default, the game will normalize volume across all four viewports, so that sounds only play at full volume if all viewports can hear it. If you would like to disable this, set bAutoAdjustAudio=False in UTGame.ini

Finally, this mutator will only activate if it determines that no other mutators have changed the default UTPlayerController or UTConsolePlayerController classes. If you would like it to forcibly activate regardless, set bPlayNice=False in UTMutator_foxSplitScreen.ini

------
Default X360 Gamepad Controls
------
-- Sticks:
Left Stick	Movement
Right Stick	Aiming
LS (Click)	Toggle Crouch / Dodge
RS (Click)	Titan Transformation

-- Triggers / Shoulder Buttons:
Right Trigger	Primary Fire
Right Shoulder	Secondary Fire
Left Trigger	Weapon Picker / Secondary Fire (Vehicles)
Left Shoulder	Jump

-- Face Buttons:
X Button	Use / Toggle Translocator or Hoverboard
Y Button	Select Next Weapon
B Button	Select Previous Weapon
A Button	Select Best Weapon

-- D-Pad:
D-Pad Up	Horn
D-Pad Down	Drop Flag / Orb
D-Pad Left	Command Menu
D-Pad Right	Toggle Impact Hammer

-- Other:
Back Button	Show Current Objective / Show Map (Warfare)
Start Button	Show Menu

All controls are fully re-mappable, so you may change them to suit your preference.

------
Campaign Mutator Support (Super Beta)
------
To utilize mutators in campaign, open up UTGame.ini and search for the "CampaignMutators" line. Edit appropriately to select which mutators you would like active. By default, it will attempt to load both foxMod mutators.

Once in the mission select screen, type "CMTest" in the console. This will restart the mission selection screen with mutator support active. Please note that you will have to do this EVERY time you return to the mission select screen. Once this is done, start a mission and cross your fingers!

Please note that this may (will) produce weird side-effects in the missions, such as the wrong teams spawning. I'm not sure why this happens yet. However, campaign progress and unlocks are still counted and saved, so if it works well enough for you, have at it!

------
Known Bugs
------
Audio is buggy in splitscreen games. I've tried the best I can to alleviate this, but for now music events, dialogue, and announcers do not play for splitscreen players (only the first player).
The Command Menu does not show up for splitscreen players, which makes it difficult for them to issue bot orders.
Nemesis FOV does not reset correctly after raising/lowering the turret.
Probably lots of other things I forgot about!

------
Other
------
This is a small project I started on April 11th, 2012, only a few days before the original release. I've since worked on it here and there at my leisure - over time, I'd like to iron out all the bugs listed above and continue improving the controller support. If you have any questions or feedback (particularly with controller input!), I'd love to hear them - feel free to leave a comment on the ModDB page (http://www.moddb.com/mods/foxMod-Splitscreen/) or the Epic Forums thread (http://forums.epicgames.com/threads/910890-Splitscreen-Enhancement-Mod-PC) and I'll try to get back to you!

Thanks for trying the mod!
~fox

------
Changes
------
v0.5 (???):
---- General:
-- Hor+ FOV support (automatically scales FOV based off aspect ratio and "Desired FOV" setting)
-- Death messages are now only hidden for 3-4p games
-- Added a "Show Splitscreen Quick Peek" option to toggle the weapon picker peek
-- Re-enabled dialog (only plays for first player)
-- Campaign mutator support test (see campaign mutator section for use)
-- Weapon picker now shows AVRiL, Redeemer etc. when appropriate
-- Enabled per-player auto-taunt settings
-- Trimmed down menus for splitscreen players
-- Can now configure vertical sensitivity scale (was previously locked to 80%)

---- AI:
-- AI side-project merged into mod
-- Anti-stuck measures for AI, fixing issues such as bots getting stuck in DM-Turbine
-- Bots use tow cables more often
-- Better follow behavior - bots utilize Link Gun properly when following and break off for combat when appropriate (within range and LOS to leader)
-- Initial orders for bots are now randomly assigned; influenced by other bots' orders
-- Bots now allowed to use hunting and "devious" behavior in team games and when large numbers of bots are present (more CPU intensive, but shouldn't be a problem)
-- Bots now use larger squads for better coordination
-- Bots now use any vehicle of opportunity, not just squad vehicles
-- When near a flag carrier and in a fast vehicle (Scorpion, Manta, etc.), bots will position themselves to tow the flag carrier (basic behavior, but it helps)
-- Bots try harder to get a vehicle unstuck before simply abandoning it
-- Bots with no passengers in an air vehicle will attempt to fetch passengers when not in combat (optimal Cicada usage for starters)
-- Bots now attempt to get out and heal vehicles when not busy
-- Bots now prefer non-vehicle paths when on foot (helps them sneak around vehicles)

v0.4 (07/18/12):
-- Audio levels now adjust to account for the number of splitscreen viewports active
-- Swap Splitscreen Control key removed (could cause issues including profile corruption if client exited to main menu)
-- New "Fine Aiming" function that shrinks the crosshair and sets finer aim sensitivity to allow for easier long-range shots
-- Any support hacks applied for splitscreen functionality (such as disabling of music, dialogue, etc.) are now instantly reverted when the game is no longer in a splitscreen state
-- Death messages are now disabled in a splitscreen game (less HUD spam for the smaller screens)
-- Improved autoaim mechanics slightly
-- Splitscreen clients can now always enter the game menu properly (could get stuck on the chat tab previously)
-- Quick-Pick weapon wheel is now shown when switching weapons in splitscreen (there is no HUD indication of what you're cycling through otherwise)
-- Switch to Best Weapon on gamepads will now switch to the driver's seat in a vehicle (in addition to next/prev weapon cycling seats)
-- Added a new "Splitscreen Players" option to dynamically select number of splitscreen players (from 0 to 3), can be used in-game to dynamically add/remove players as well
-- Removed the "Add Splitscreen Player" control (use the new option instead)
-- Improved Warfare support in splitscreen - the (fullscreen) map no longer automatically shows when a player dies in splitscreen
-- Tweaked default gamepad controls to accommodate the new Fine Aiming function, as well as move the Impact Hammer off right stick (was easy to accidentally activate in heated combat)
-- Implemented working look-to-steer controls and the associated Vehicle Controls option
-- Implemented a local profile system to save splitscreen players' settings. Currently saves settings by the local player number (2nd players' settings will always be 2nd players' settings), but this will be expanded in the future
-- Added bindable "Drop Flag / Orb" control
-- All shared settings (such as network speed, custom character loading, etc.) are now only set by the first player
-- "Small Weapons" option is now set per-player in split-screen, instead of globally
-- Keyboard bindings are no longer set on splitscreen players unless bAllowSplitscreenPlayerKeyboardBinds in UTGame.ini is set to true (less menu clutter)
-- Reorganized controls menu again (all gamepad options are now at the top of the list)
-- Gamepad autoaiming can now be toggled off if desired
-- Music and Announcer are now mostly functional - they will play at full volume from the first player, but the remaining local players' music cues and announcement messages are skipped (this will be improved in the future)
-- Weapon Picker now functions as a secondary fire key for vehicles (instead of previous seat), since it is usually on the left trigger
-- Weapon Picker menu now orders weapons like the normal UT weapon row (Enforcer, Bio-Rifle, Shock Rifle, etc. clockwise)

v0.3 (06/03/12):
-- Smoother aiming controls
-- Working analog stick configuration (Default, Southpaw, Legacy, Legacy Southpaw)
-- Reorganized controls menu (gamepad stuff grouped together down below)
-- Removed target adhesion / sticky aim (wasn't working correctly anyways)
-- Improved Auto-Center Look (much smoother and correctly centers to 0)
-- Auto-Center Look now defaults to off
-- General code cleanup

v0.2 (05/24/12):
-- Additional controls (such as Add Splitscreen Player or Show Base Path) are now saved properly.
-- When voting, any splitscreen players will automatically mirror the first player's votes.
-- Tighter quick-turn for controllers.
-- Removed extended FOV support; use FreeFOV or similar mutator for FOV tweaks.

v0.1 (04/16/12):
-- Initial release.